package model;

import interfaces.IdAutoIncrement;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


public class Hotel implements Serializable, IdAutoIncrement {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int id;
	private String nome,gerente;
	private List<Quarto> quartos = new ArrayList<Quarto>();
	
	public Hotel() {
		quartos = new ArrayList<Quarto>();
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getGerente() {
		return gerente;
	}
	
	public void setGerente(String gerente) {
		this.gerente = gerente;
	}
	
	public Quarto getQuarto(int numero){
		for(Quarto q : quartos){
			if(q.getNumero()==numero)
				return q;
		}
		return null;
	}
	
	public List<Quarto> getQuartosOcupados(){
		List<Quarto> qo = new ArrayList<Quarto>();
		for(Quarto q : quartos){
			if(q.isOcupado())
				qo.add(q);
		}
		return qo;
	}
	
	public List<Quarto> getQuartosLivres(){
		List<Quarto> qo = new ArrayList<Quarto>();
		for(Quarto q : quartos){
			if(!q.isOcupado())
				qo.add(q);
		}
		return qo;
	}
	
	public List<Quarto> getQuartos() {
		return quartos;
	}
	
	public void setQuartos(List<Quarto> quartos) {
		this.quartos = quartos;
	}
	
	public void criarQuartos(int quant){
		for(int i=0;i<quant;i++){
			Quarto q = new Quarto();
			q.setNumero(gerarNumeroQuarto());
			quartos.add(q);
		}
	}
	
	private int gerarNumeroQuarto(){
		if(quartos.isEmpty())
			return 1;
		return quartos.get((quartos.size() - 1)).getNumero() + 1;
	}

	@Override
	public String toString() {
		return "Hotel [nome=" + nome + ", gerente=" + gerente + ", quartos="
				+ quartos.size() + "]";
	}
	
	
}
